﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Xml;
using System.Xml.Serialization;
using System.IO;

using RecursosHumanos;

namespace Academico
{
    public partial class frmMenu : Form
    {
        public static Constantes constantes = new Constantes();

        public frmMenu()
        {
            InitializeComponent();
        }

        private void frmMenu_Load(object sender, EventArgs e)
        {
            CarregaConstantes();
        }

        private void CarregaConstantes()
        {
            string caminho = Application.StartupPath + @"\Constantes.xml";
            var serializer = new XmlSerializer(typeof(Constantes));
            var reader = new StreamReader(caminho);
            constantes = (Constantes)serializer.Deserialize(reader);
            reader.Close(); 
        }

        private void clientesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //var frm = new frmCliente();
            //frm.ShowDialog();
            Util.ChamaForm(new frmCliente());
        }

        private void sairToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //var frm = new frmConfiguracao();
            //frm.ShowDialog();
            Util.ChamaForm(new frmConfiguracao());
        }

        private void sairToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void toolStripMenuItem6_Click(object sender, EventArgs e)
        {
            //var frm = new frmBairros();
            //frm.ShowDialog();
            Util.ChamaForm(new frmBairros());
        }

        private void toolStripMenuItem3_Click(object sender, EventArgs e)
        {
            //var frm = new frmCidades();
            //frm.ShowDialog();
            Util.ChamaForm(new frmCidades());
        }

        private void toolStripMenuItem4_Click(object sender, EventArgs e)
        {
            //var frm = new frmDepartamentos();
            //frm.ShowDialog();
            Util.ChamaForm(new frmDepartamentos());
        }

        private void toolStripMenuItem5_Click(object sender, EventArgs e)
        {
            //var frm = new frmMarcas();
            //frm.ShowDialog();
            Util.ChamaForm(new frmMarcas());
        }

        private void usuáriosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //var frm = new frmUsuarios();
            //frm.ShowDialog();
            Util.ChamaForm(new frmUsuarios());
        }

        private void toolStripMenuItem1_Click(object sender, EventArgs e)
        {
            //var frm = new frmFuncionarios();
            //frm.ShowDialog();
            Util.ChamaForm(new frmFuncionarios());
        }

        private void businessInteligenceBIToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //var frm = new frmBI();
            //frm.ShowDialog();
            Util.ChamaForm(new frmBI());
        }

        private void cursosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //var frm = new frmCurso();
            //frm.ShowDialog();
            Util.ChamaForm(new frmCurso());
        }

        private void modelosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //var frm = new frmVeiculoModelo();
            //frm.ShowDialog();
            Util.ChamaForm(new frmVeiculoModelo());
        }
    }

    [Serializable(),XmlRoot("constantes")]
    public class Constantes
    {
        [XmlArray("EstadoSiglas")]
        [XmlArrayItem("EstadoSigla",typeof(EstadoSigla))]
        public List<EstadoSigla> EstadosSiglas { get; set; } //= new List<EstadoSigla>();
        [XmlArray("FilmeGeneros")]
        [XmlArrayItem("FilmeGenero",typeof(FilmeGenero))]
        public List<FilmeGenero> FilmeGeneros { get; set; } //= new List<FilmeGenero>();
        [XmlArray("FilmeClassificacoes")]
        [XmlArrayItem("FilmeClassificacao", typeof(FilmeClassificacao))]
        public List<FilmeClassificacao> FilmeClassificacoes { get; set; } //= new List<FilmeGenero>();
        [XmlArray("EnderecoTipos")]
        [XmlArrayItem("EnderecoTipo",typeof(EnderecoTipo))]
        public List<EnderecoTipo> EnderecoTipos { get; set; } //= new List<EnderecoTipo>();
        [XmlArray("EnderecoEletronicoTipos")]
        [XmlArrayItem("EnderecoEletronicoTipo",typeof(EnderecoEletronicoTipo))]
        public List<EnderecoEletronicoTipo> EnderecoEletronicoTipos { get; set; } //= new List<EnderecoEletronicoTipo>();
        [XmlArray("TelefoneTipos")]
        [XmlArrayItem("TelefoneTipo",typeof(TelefoneTipo))]
        public List<TelefoneTipo> TelefoneTipos { get; set; } //= new List<TelefoneTipo>();
        [XmlArray("IngressoLocalCompras")]
        [XmlArrayItem("IngressoLocalCompra", typeof(IngressoLocalCompra))]
        public List<IngressoLocalCompra> IngressoLocalCompras { get; set; } //= new List<IngressoLocalCompra>();

        public Constantes()
        {
            EstadosSiglas = new List<EstadoSigla>();
            FilmeGeneros = new List<FilmeGenero>();
            FilmeClassificacoes = new List<FilmeClassificacao>();
            EnderecoTipos = new List<EnderecoTipo>();
            EnderecoEletronicoTipos = new List<EnderecoEletronicoTipo>();
            TelefoneTipos = new List<TelefoneTipo>();
            IngressoLocalCompras = new List<IngressoLocalCompra>();
        }
    }
}
